# 创建张量
# 张量创建的许多方法和numpy中创建array的方法很像。
import tensorflow as tf
import numpy as np

#定义常量
a = tf.constant([1,2,3],dtype = tf.float32)
tf.print(a)

# 定义一组数据delta 步长
b = tf.range(1,10,delta = 2)
tf.print(b)  #1,3,5,7,9

#定义一组等分数据：
c = tf.linspace(0.0,2*3.14,100)  #起始：0.0  终止：2*3.14  等分：100
tf.print(c)

#定义全零数组
d = tf.zeros([3,3])
tf.print(d)

#定义全1数组
a = tf.ones([3,3])
b = tf.zeros_like(a,dtype= tf.float32)  #zeros零 like:像 tf.zeros_like产生像a的shape一样的全零数组
c = tf.ones_like(a,dtype= tf.float32)  #ones零 like:像 tf.zeros_like产生像a的shape一样的全1数组
tf.print(a)
tf.print(b)
tf.print(c)

# 填充任意形状的某个数值
b = tf.fill([3,2],5)   #fill填充 创建shape为[3,2]的数组，其中的数据全部填充为5
tf.print(b)

#均匀分布随机
tf.random.set_seed(1.0)  #设置随即种子
a = tf.random.uniform([5],minval=0,maxval=10)   #产生均匀分布的随机数: 数的范围：(minval, maxval) 形状：[5]
tf.print(a) #[1.65130854 9.01481247 6.30974197 4.34546089 2.9193902]

#正态分布随机
b = tf.random.normal([3,3],mean=0.0,stddev=1.0)  #normal:正态 mean:平均值 stddev:标准差sigma
tf.print(b)

#正态分布随机，剔除2倍方差以外数据重新生成，形状shape=[5,5] mean:平均值 stddev:标准差s
c = tf.random.truncated_normal((5,5), mean=0.0, stddev=1.0, dtype=tf.float32)
#truncated_noraml:截断正态分布，剔出2备标准差之外的数据
tf.print(c)

# 特殊矩阵
I = tf.eye(3,3) #单位矩阵
tf.print(I)
tf.print(" ")

#对角矩阵
t = tf.linalg.diag([1,2,3]) #对角矩阵
tf.print(t)